<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <meta http-equiv="X-UA-Compatible" content="ie=edge" />
    <title>Document</title>
  </head>

  <body>
    <div id="box"></div>
    <div id="box1"></div>
    <script type="text/javascript" src="./js/react.development.js"></script>
    <!-- 提供了操作DOM的react扩展库 -->
    <script type="text/javascript" src="./js/react-dom.development.js"></script>
    <!-- 解析jsx语法的代码转换为js语法 -->
    <script type="text/javascript" src="./js/babel.min.js"></script>
    <script type="text/babel">
      /* 
       组件的三大属性：state props refs

       state :react中很多地方都需要数据 在react中叫做状态 专门用来管理状态的对象 state
       作用：
       ①存储状态（数据）
       ② 通过更改组件的state来更新对应的页面的显示（重新渲染）
       操作state 初始化状态 读取状态 更新状态 this.setState()

       
        */
      class Component1 extends React.Component {
        constructor(props) {
          super(props);
          // 初始化状态
          this.state = {
            flag: true
          };
          this.change = this.change.bind(this);
          this.change1 = this.change1.bind(this);
        }
        change() {
          this.setState({
            flag: true
          });
        }
        change1() {
          this.setState({
            flag: false
          });
        }
        render() {
          let btn;
          const btn1 = this.state.flag;
          // render函数中可以声明变量去接收 jsx语法
          if (btn1) {
            btn = <p>好的</p>;
          } else {
            btn = <p>不行</p>;
          }
          return (
            <div>
              <h1>请嫁给我吧！！</h1>
              <h2>{btn}</h2>
              <button onClick={this.change}>回答</button>
              <button onClick={this.change1}>回答</button>
            </div>
          );
        }
      }

      ReactDOM.render(<Component1 />, document.getElementById("box"));
    </script>
  </body>
</html>
